home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-15 / umax130.zip / UMAX.DOC < prev    next >
Text File  |  1992-04-22  |  13KB  |  284 lines

  1.  
  2.                       UMAx
  3.                            ----
  4.             (c) Copyright 1991-1992, FM de Monasterio
  5.                   Licensed Material - All rights reserved
  6.  
  7.                   Release 1.30
  8.  
  9.  
  10.    SUMMARY
  11.  
  12.    UMAx allows for the testing of a number of services of the extended memory
  13.    manager, which implements the extended memory specification in 80286-based
  14.    or higher machines.  The testing includes upper-memory block services, and
  15.    provides a list of the size and address of available upper-memory blocks.
  16.  
  17.                 ----------------
  18.  
  19.    1.  GENERAL INFORMATION
  20.  
  21.    Irrespective of the CPU, DOS runs in an 8086-compatible mode known as real
  22.    mode.  In such a mode, where addressable memory is seen as consisting of a
  23.    series of 64-kb segments, memory addresses are made up of two portions:  A
  24.    16-bit 'segment,' between 0 and 65,535 (or FFFF in hexadecimal), and a 16-
  25.    bit 'offset,' which is the distance in bytes (between 0 and FFFF) from the
  26.    address to the first byte of the segment.  By modifying the segment:offset
  27.    values, up to 1 Mb of memory can be addressed.
  28.  
  29.    In all 80x86 CPU-based DOS computers, the first megabyte (i.e. 1024 kb) of
  30.    memory comprises the initial 640 kb of address space, used by DOS, and the
  31.    remaining 384 kb of address space, used by hardware subsystems and by BIOS
  32.    routines.  The lower 640-kb space is called 'conventional' memory, and the
  33.    upper 384-kb space is called the Upper Memory Area (UMA).  The UMA is also
  34.    referred to as 'upper' or 'high-DOS' memory.
  35.  
  36.  
  37.        ┌── Conventional RAM ──┬────── UMA ──────┌── Extended ──∙∙∙
  38.                                               
  39.       0 kb                   640 kb           1024 kb
  40.        │                      │                 │       EMBs
  41.        ▒▒▒▒▒▒▒▒▒▒∙∙∙▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░∙∙∙
  42.                                                 
  43.                                                HMA
  44.  
  45.  
  46.    The extended memory specification (XMS) is a software interface for 80286-
  47.    based or higher computers, allowing real-mode programs to use the extended
  48.    memory as well as certain regions of conventional memory which are located
  49.    above the 640-kb DOS hardware barrier.  The UMA is one such region.
  50.  
  51.    The UMA is dedicated to video display and other hardware memory as well as
  52.    the ROM BIOS. Not all the UMA is normally used, so unused addresses can be
  53.    backfilled with a memory manager. Some XMS managers, such as the prototype
  54.    HIMEM.SYS, rely on other programs for the backfilling and simply arbitrate
  55.    use of memory blocks in the UMA (UMBs). Other XMMs, such as XMS-compatible
  56.    386-type memory managers, can both backfill the UMA and arbitrate UMB use.
  57.    Examples of such managers are QEMM386 (Quarterdeck) and 386MAX (Qualitas).
  58.  
  59.    Current XMS versions provide two UMB services: (1) Function 10h, which can
  60.    be used to allocate a UMB of the requested size (if successful returns the
  61.    segment base of the allocated block and the actual UMB size; otherwise, it
  62.    returns the largest available block size), and (2) function 11h, which can
  63.    be used to free the allocated UMBs.  By taking advantage of such services,
  64.    some resident programs can install themselves in upper memory (to preserve
  65.    the conventional memory used by DOS), and later remove themselves from the
  66.    memory.
  67.  
  68.  
  69.  
  70.    DOS-MEDIATED UMB ALLOCATION (MS-DOS and PC-DOS 5.0)
  71.  
  72.    Distributed MS-DOS and PC-DOS versions prior to MS-DOS 5.0 did not control
  73.    UMB allocation.  When the (DOS-5 distributed) XMM driver HIMEM.SYS and the
  74.    UMB-provider EMM386.EXE are installed, and DOS 5.0 is reconfigured via the
  75.    command 'DOS=UMB' in the CONFIG.SYS file, all available UMBs are allocated
  76.    to DOS, thus linking the UMA to the operating system.  If the UMA has been
  77.    linked, DOS allocates the UMBs via standard interrupt-21h function calls.
  78.  
  79.    Under DR-DOS 6.0 or (if DOS controls UMA allocation) MS-DOS or PC-DOS 5.0,
  80.    both device drivers and resident programs can be loaded in the UMA via the
  81.    commands HIDEVICE or DEVICEHIGH for drivers and HIINSTALL and LOADHIGH for
  82.    for resident utilities.  Loading in UMA is provided by XMS-compatible 386-
  83.    memory managers as well.  (Finally, some resident utilities can also self-
  84.    install themselves in the UMA when UMB allocation is controlled by the XMS
  85.    manager or by MS-DOS or PC-DOS 5.0.)
  86.  
  87.                 ----------------
  88.  
  89.    2.  XMS SERVICES
  90.  
  91.    UMAx tests the UMB services of the XMS manager by progressively allocating
  92.    smaller blocks until no more free UMBs are available in the UMA, lists all
  93.    of the allocated UMBs, and then deallocates the blocks. It also provides a
  94.    graphic display of the available UMBs.
  95.  
  96.    In the default mode, UMAx tests UMB functions between the lower address of
  97.    640 kb (hexadecimal segment A000) and the upper address of 1,024 kb (hexa-
  98.    decimal segment FFFF).  A higher lower address can be specified via switch
  99.    /H (see below).
  100.  
  101.    Optionally, UMAx can also test some basic XMS services: (1) allocation and
  102.    release of the HMA, (2) global and local enabling and disabling of the A20
  103.    Line, and (3) allocation, resizing, and release of a extended memory block
  104.    (EMB).
  105.  
  106.                 ----------------
  107.  
  108.    3.  USAGE
  109.                 UMAX [/Hn /X] [;Comments]
  110.  
  111.    where switch Hn defines use of a hexadecimal address to be used as a lower
  112.    boundary for the UMA, in which A000 (640 kb) ≤ 'n' ≤ FFFF (1,024 kb). If a
  113.    null ('n' missing) or invalid address is given (A000 > 'n' > FFFF) the UMA
  114.    lower boundary of A000 is used.
  115.  
  116.    Switch X tests basic non-UMB services of the XMS.
  117.  
  118.    Comments may be added at the end of the command line invoking the program,
  119.    after the desired switches.  The comments, which may help clarifying batch
  120.    files, must be preceded by a semicolon (;) and are ignored by UMAx.
  121.  
  122.    Do not use the redirection command or the pipe command character of DOS in
  123.    these comments because DOS will try to implement the implied command(s).
  124.  
  125.                 ----------------
  126.  
  127.    4.  ERRATA
  128.  
  129.    Prior versions of UMAx may cancel execution and return an error message in
  130.    the following cases:
  131.  
  132.     1. Revisions of MS-DOS 5.0 which improperly set the carry flag of the
  133.            CPU if the DOS-5 function 'Get MS-DOS Version' is called.  This is
  134.        the case of Revision B of MS-DOS 5.  (Use the undocumented command
  135.        VER /R at the DOS prompt to determine the revision of DOS 5.)
  136.  
  137.     2. Versions of the memory manager 386MAX.SYS which improperly set the
  138.        carry flag and do not clear register AL of the CPU if the function
  139.            'Get Upper-Memory Link' of DOS 5 is called and either MS-DOS or PC
  140.            DOS 5.00 is installed (any revision).  This is the case of version
  141.        6.01 of this manager.  (This problem can be fixed with the utility
  142.            FIXLINK.EXE distributed by the author.)
  143.  
  144.                 ----------------
  145.  
  146.  
  147.    5.  ERROR MESSAGES
  148.  
  149.    5.1  "Code is corrupted (CRC failure) - Execution cancelled"
  150.    A cyclical redundancy check carried out every time the program is executed
  151.    returned a wrong value, indicating corruption or tampering of the code.
  152.  
  153.  
  154.    5.2  "Failed to detect presence of an XMS manager (XMM)"
  155.    An XMS manager complying with the specifications of XMS 2 or higher is not
  156.    installed.
  157.  
  158.  
  159.    5.3  "UMB services not implemented [XMS error code 80h]"
  160.    The installed XMS manager does support UMB services or cannot backfill the
  161.    unused addresses in the UMA.
  162.  
  163.  
  164.    5.4  "General driver error [XMS error code 8Eh]"
  165.    5.5  "Unrecoverable driver error [XMS error code 8Fh]"
  166.    5.6  "Undetermined XMM error [XMS error code ??h]"
  167.    The XMS manager experienced a fatal error and program execution cannot be
  168.    continued. The problem may be cleared by rebooting the CPU.
  169.  
  170.  
  171.    5.7  "XMM could not allocate UMB [XMS error code B1h]"
  172.    The XMS manager was unable to allocate a requested UMB; reboot the CPU to
  173.    reset the UMA allocation.
  174.  
  175.  
  176.    5.8  "XMM could not release UMB [XMS error code B2h]"
  177.    The XMS manager was unable to release an allocated UMB; reboot the CPU to
  178.    reset the UMA allocation.
  179.  
  180.  
  181.    5.9  "UMBs are not available above this segment..."
  182.    There are no available free UMBs between the hexadecimal segment specified
  183.    above and segment FFFF; if a lower boundary was specified via switch H for
  184.    the UMA, try using a smaller (lower) value. See section 4.1.
  185.  
  186.  
  187.                 ----------------
  188.  
  189.    6. COPYRIGHT
  190.  
  191.    This documentation, programs, and other files distributed in this software
  192.    package (the "Software")  are the copyrighted property of FM de Monasterio
  193.    (the "Author") who provides the Software and licenses its use.  All rights
  194.    are reserved. 
  195.  
  196.    If you would like to use this Software for education or nonprofit purposes
  197.    at home, please make a donation for poor children in need of medical care,
  198.    sending to the address below a check marked "For Deposit Only" and payable
  199.    to "PATIENT CARE FUND, CHILDREN'S HOSPITAL, Washington DC."  All donations
  200.    are sent to this hospital.  (Please indicate the program for which you are
  201.    making the donation.)
  202.  
  203.    For use by corporations, institutions or goverment agencies, or for-profit
  204.    purposes, contact the Author for licensing information.
  205.  
  206.  
  207.    U.S. GOVERNMENT INFORMATION
  208.  
  209.    The use, duplication, or disclosure by the U.S. Government of the Software
  210.    is subject to the restricted rights applicable to commercial software that
  211.    are specified in the subdivision (b.3.ii) of the 'Rights in Technical Data
  212.    and Computer Software' clause, document DFARS 52.227-7013.
  213.  
  214.  
  215.    DISTRIBUTION
  216.  
  217.    You may distribute this Software via magnetic and/or electronic means, but
  218.    you are specifically prohibited from:
  219.  
  220.     - Charging fees or asking donations in exchange of or payment
  221.       for copies of this Software.
  222.  
  223.     - Distributing this Software with commercial products without
  224.       the written, express permission in advance from the author.
  225.  
  226.     - Distributing this Software via a for-profit organization or
  227.       group, either alone or with other software.
  228.  
  229.     - Modifying any contents of this Software, including, but not
  230.       limited to, the copyright notice and this license.
  231.  
  232.  
  233.    The unauthorized copying, decompiling or disassembling of this Software is
  234.    prohibited.  Any other use of this Software is also prohibited without the
  235.    express, written permision in advance from the author.
  236.  
  237.  
  238.    WARRANTY DISCLAIMER
  239.  
  240.    The Author cannot and does not warrant that any functions contained in the
  241.    Software will meet your requirements, or that its operations will be error
  242.    free.  The entire risk as to the Software performance or quality, or both,
  243.    is solely with the user and not the Author.  You assume responsibility for
  244.    the selection of the program to achieve your intended results, and for the
  245.    installation, use, and results obtained from the Software.
  246.  
  247.    The Author makes no warranty, either implied or expressed, including with-
  248.    out limitation any warranty with respect to this Software documented here,
  249.    its quality, performance, or fitness for a particular purpose. In no event
  250.    shall the Author be liable to you for damages, whether direct or indirect,
  251.    incidental, special, or consequential arising out the use of or any defect
  252.    in the Software, even if the Author has been advised of the possibility of
  253.    such damages, or for any claim by any other party.
  254.  
  255.    All other warranties of any kind, either express or implied, including but
  256.    not limited to the implied warranties of merchantability and fitness for a
  257.    particular purpose, are expressly excluded.
  258.  
  259.  
  260.    LIMITATION OF REMEDIES
  261.  
  262.    The information contained in the documentation for the Software is subject
  263.    to change without notice.
  264.  
  265.    The Author's entire liability, and your exclusive remedy shall be: (1) the
  266.    replacement of an original Software diskette not meeting the above Limited
  267.    Warranty and which is returned to the Author along with proof of purchase,
  268.    or (2), if the Author is unable to deliver a replacement diskette which is
  269.    free of defects, you may terminate the License Agreement by returning this
  270.    Software and the corresponding license fee will be returned.
  271.  
  272.    By using the Software, you acknowledge (1) to have read and understood all
  273.    parts of this document and (2) to have agreed with and accepted all of its
  274.    provisions without any reservation.
  275.  
  276.                         FM de Monasterio
  277.                         P.O. Box 219
  278.                         Cabin John, MD 20818-0219
  279.  
  280.          ┌─────────────────────────────────────────────────────────────┐
  281.          │ Trademarked names are the property of the respective owners │
  282.          └─────────────────────────────────────────────────────────────┘
  283.  [END]
  284.